package com.linghu.service;

import com.linghu.pojo.Person;
import com.linghu.pojo.ResponseBody;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.TokenStream;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import dev.langchain4j.service.spring.AiService;

/**
 * AI助手服务接口
 * 使用LangChain4j框架实现的AI服务，提供聊天和自我介绍功能
 */
@AiService
public interface Assistant {
    /**
     * 与AI进行愤怒风格的对话
     * @param userMessage 用户输入的消息内容
     * @return AI愤怒风格的回复
     */
//    @UserMessage("你愤怒的说到：{{msg}}")
//    String chat(@V("msg") String userMessage);
//
//    /**
//     * 获取AI的自我介绍信息
//     * @return 包含姓名、年龄、性别、住址等信息的Person对象
//     */
//    @SystemMessage("你是美籍华裔")
//    @UserMessage("请自我介绍，包含姓名、年龄、性别、住址等信息")
//    Person intro();

    /**
     * 与AI进行聊天对话
     * @param userMessage 用户输入的消息
     * @return TokenStream 返回一个令牌流，支持流式响应
     */
//    @SystemMessage("你是香港人，只会使用繁体中文回答问题。") // 系统提示词，定义AI的角色和行为
//    @UserMessage("你兴奋的跟他说：{{msg}}") // 用户消息模板，{{msg}}会被实际用户输入替换
//    TokenStream chat(@V("msg") String userMessage); // @V注解将参数绑定到消息模板中的变量

    ResponseBody chat(String userMessage);
}
